/**
 * 文字按钮
 * by sunwanli
 * create 2021-08-13
 */
import React from 'react';
import PropTypes from 'prop-types';
import { Icon as LegacyIcon } from '@ant-design/compatible';
import { Button } from 'antd';

class PrimaryTextC extends React.PureComponent {
  // props默认值
  static defaultProps = {
    loading: false, // 默认不loading
    title: '', // 默认按钮无名称
    htmlType: 'button', // 默认不设置
    disabled: false, // 默认有效状态
    onClick: () => {}, // 默认无点击事件
    icon: undefined, // 默认按钮中不加图标
    style: undefined, // 样式
  };

  constructor(props) {
    super(props);
  }

  render() {
    const { title, loading, disabled, htmlType, onClick, style, icon } = this.props;
    return (
      <div style={{ ...style, display: 'inline-block' }}>
        <Button type='link' htmlType={htmlType} disabled={disabled} loading={loading} onClick={onClick}>
          {title}
          {icon && <LegacyIcon type={icon} />}
        </Button>
      </div>
    );
  }
}

// props类型
PrimaryTextC.propsTypes = {
  loading: PropTypes.bool, // 标记是否是loading状态
  title: PropTypes.string, // 按钮名称
  htmlType: PropTypes.oneOf(
    // 配合form表单的onSubmit事件，可设置值为“submit”
    ['submit', 'button', 'reset'],
  ),
  disabled: PropTypes.bool, // 标记是否是失效状态
  onClick: PropTypes.func, // 按钮点击事件
  style: PropTypes.object, // 样式
  icon: PropTypes.string, // 按钮中加图标(图标名称)
};

export default PrimaryTextC;
